package com.ztc.ZtcTransportDefaultPercentage.web;


import com.alibaba.fastjson.JSONObject;
import com.aqgj.util.JsonWrapper;
import com.ztc.ZtcTransportDefaultPercentage.bean.ZtcTransportDefaultPercentage;
import com.ztc.ZtcTransportDefaultPercentage.service.ZtcTransportDefaultPercentageManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;


@Controller
@RequestMapping("ztc/ztcTransportDefaultPercentage")
public class ZtcTransportDefaultPercentageAction {

    @Autowired
    private ZtcTransportDefaultPercentageManager ztcTransportDefaultPercentageManager;

    /**
     * 设置默认提成比例.
     * @param ztcTransportDefaultPercentage 比例信息
     * @return
     */
    @RequestMapping("setInfo")
    @ResponseBody
    public HashMap<String,Object> setInfo(ZtcTransportDefaultPercentage ztcTransportDefaultPercentage){
        if (ztcTransportDefaultPercentage.getTwoProportion() != null) {
            if (ztcTransportDefaultPercentage.getTwoProportion().compareTo(BigDecimal.ZERO) == -1) {
                return JsonWrapper.failureWrapperMsg("二级用户比例设置不能小于0");
            }
            if (ztcTransportDefaultPercentage.getTwoProportion().compareTo(new BigDecimal(100)) == 1) {
                return JsonWrapper.failureWrapperMsg("二级用户比例设置不能超过100%");
            }
        }
        if (ztcTransportDefaultPercentage.getThreeProportion() != null) {
            if (ztcTransportDefaultPercentage.getThreeProportion().compareTo(BigDecimal.ZERO) == -1) {
                return JsonWrapper.failureWrapperMsg("三级用户比例设置不能小于0");
            }
            if (ztcTransportDefaultPercentage.getThreeProportion().compareTo(new BigDecimal(100)) == 1) {
                return JsonWrapper.failureWrapperMsg("三级用户比例设置不能超过100%");
            }
        }
        if (ztcTransportDefaultPercentage.getProvincialLevelScale() != null) {
            if (ztcTransportDefaultPercentage.getProvincialLevelScale().compareTo(BigDecimal.ZERO) == -1) {
                return JsonWrapper.failureWrapperMsg("省级比例设置不能小于0");
            }
            if (ztcTransportDefaultPercentage.getProvincialLevelScale().compareTo(new BigDecimal(100)) == 1) {
                return JsonWrapper.failureWrapperMsg("省级比例设置不能超过100%");
            }
        }
        if (ztcTransportDefaultPercentage.getOperationLevelScale() != null) {
            if (ztcTransportDefaultPercentage.getOperationLevelScale().compareTo(BigDecimal.ZERO) == -1) {
                return JsonWrapper.failureWrapperMsg("运营比例设置不能小于0");
            }
            if (ztcTransportDefaultPercentage.getOperationLevelScale().compareTo(new BigDecimal(100)) == 1) {
                return JsonWrapper.failureWrapperMsg("运营比例设置不能超过100%");
            }
        }
        if (ztcTransportDefaultPercentage.getMunicipalLevelScale() != null) {
            if (ztcTransportDefaultPercentage.getMunicipalLevelScale().compareTo(BigDecimal.ZERO) == -1) {
                return JsonWrapper.failureWrapperMsg("地级比例设置不能小于0");
            }
            if (ztcTransportDefaultPercentage.getMunicipalLevelScale().compareTo(new BigDecimal(100)) == 1) {
                return JsonWrapper.failureWrapperMsg("地级比例设置不能超过100%");
            }
        }
        if (ztcTransportDefaultPercentage.getCarCutLevelScale() != null) {
            if (ztcTransportDefaultPercentage.getCarCutLevelScale().compareTo(BigDecimal.ZERO) == -1) {
                return JsonWrapper.failureWrapperMsg("车方用户比例设置不能小于0");
            }
            if (ztcTransportDefaultPercentage.getCarCutLevelScale().compareTo(new BigDecimal(100)) == 1) {
                return JsonWrapper.failureWrapperMsg("车方比例设置不能超过100%");
            }
        }
        if (ztcTransportDefaultPercentage.getDealerUserLevelScale() != null) {
            if (ztcTransportDefaultPercentage.getDealerUserLevelScale().compareTo(BigDecimal.ZERO) == -1) {
                return JsonWrapper.failureWrapperMsg("分销商比例设置不能小于0");
            }
            if (ztcTransportDefaultPercentage.getDealerUserLevelScale().compareTo(new BigDecimal(100)) == 1) {
                return JsonWrapper.failureWrapperMsg("分销商比例设置不能超过100%");
            }
        }
        JSONObject jsonObject= JSONObject.parseObject(ztcTransportDefaultPercentage.getAppPrivateCarScale());
        if(jsonObject.size()<4){
            return JsonWrapper.failureWrapperMsg("私家车比例设置参数不完整！");
        }
        if (new BigDecimal(jsonObject.get("privateCarOne").toString()).compareTo(BigDecimal.ZERO) == -1) {
            return JsonWrapper.failureWrapperMsg("私家车一级分销商比例设置不能小于0");
        }
        if (new BigDecimal(jsonObject.get("privateCarOne").toString()).compareTo(new BigDecimal(100)) == 1) {
            return JsonWrapper.failureWrapperMsg("私家车一级分销商比例设置不能超过100%");
        }
        if (new BigDecimal(jsonObject.get("privateCarTwo").toString()).compareTo(BigDecimal.ZERO) == -1) {
            return JsonWrapper.failureWrapperMsg("私家车二级分销商比例设置不能小于0");
        }
        if (new BigDecimal(jsonObject.get("privateCarTwo").toString()).compareTo(new BigDecimal(100)) == 1) {
            return JsonWrapper.failureWrapperMsg("私家车二级分销商设置不能超过100%");
        }
        if (new BigDecimal(jsonObject.get("privateCarThree").toString()).compareTo(BigDecimal.ZERO) == -1) {
            return JsonWrapper.failureWrapperMsg("私家车三级分销商比例设置不能小于0");
        }
        if (new BigDecimal(jsonObject.get("privateCarThree").toString()).compareTo(new BigDecimal(100)) == 1) {
            return JsonWrapper.failureWrapperMsg("私家车三级分销商比例设置不能超过100%");
        }
        if (new BigDecimal(jsonObject.get("platformScale").toString()).compareTo(BigDecimal.ZERO) == -1) {
            return JsonWrapper.failureWrapperMsg("平台提成比例设置不能小于0");
        }
        if (new BigDecimal(jsonObject.get("platformScale").toString()).compareTo(new BigDecimal(100)) == 1) {
            return JsonWrapper.failureWrapperMsg("平台提成比例设置不能超过100%");
        }
        if(ztcTransportDefaultPercentage.getId()!=null){
            BigDecimal bigDecimal1=ztcTransportDefaultPercentage.getOperationLevelScale().add(ztcTransportDefaultPercentage.getDealerUserLevelScale());
            if(bigDecimal1.compareTo(new BigDecimal(100))==1){
                return JsonWrapper.failureWrapperMsg("运营提成比例与分销用户返利比例之和不能超过100%");
            }
            ZtcTransportDefaultPercentage ztcTransportDefaultPercentage1=ztcTransportDefaultPercentageManager.get(ztcTransportDefaultPercentage.getId());
            ztcTransportDefaultPercentage.setCreateTime(ztcTransportDefaultPercentage1.getCreateTime());
            ztcTransportDefaultPercentage.setCommonUserLevelScale(ztcTransportDefaultPercentage1.getCommonUserLevelScale());
            ztcTransportDefaultPercentageManager.update(ztcTransportDefaultPercentage);
        }else{
            ztcTransportDefaultPercentage.setCreateTime(new Date());
            ztcTransportDefaultPercentage.setCommonUserLevelScale(new BigDecimal(5));
            ztcTransportDefaultPercentageManager.save(ztcTransportDefaultPercentage);
        }
        return JsonWrapper.successWrapper("比例设置操作成功！");
    }


    /**
     * 获取提成比例.
     * @return
     */
    @RequestMapping("getInfo")
    @ResponseBody
    public HashMap<String,Object> getInfo(){
        List<ZtcTransportDefaultPercentage> ztcTransportDefaultPercentageList=ztcTransportDefaultPercentageManager.getAll();
        if(ztcTransportDefaultPercentageList.size()<=0){
           return  JsonWrapper.successWrapper("");
        }else{
            return JsonWrapper.successWrapper(ztcTransportDefaultPercentageList.get(0));
        }
    }

}